#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
用户模型
定义微信用户相关的数据库表结构
"""

from sqlalchemy import Column, String, Boolean, Text, Integer
from .base import BaseModel, db

class User(BaseModel):
    """
    微信用户模型
    存储微信好友和联系人信息
    """
    __tablename__ = 'users'

    # 所属账号
    account = Column(String(100), nullable=False, comment='所属账号，逻辑外键关联belong表的id列')
    
    # 微信用户名（显示名称）
    wechat_name = Column(String(100), nullable=False, comment='微信显示名称')
    
    # 微信ID（唯一标识）
    wechat_id = Column(String(100), unique=True, nullable=True, comment='微信ID')
    
    # 备注名
    remark_name = Column(String(100), nullable=True, comment='备注名')
    
    # 用户类型：1(好友), 2(群成员)
    user_type = Column(Integer, nullable=False, default=1, comment='用户类型，1(好友), 2(群成员)')
    
    # 头像URL
    avatar_url = Column(String(500), nullable=True, comment='头像URL')
    
    # 个性签名
    signature = Column(Text, nullable=True, comment='个性签名')
    
    # 描述信息
    description = Column(Text, nullable=True, comment='描述信息')
    
    # 以下字段在数据库中不存在，已注释掉
    # # 地区信息
    # region = Column(String(200), nullable=True, comment='地区信息')
    # 
    # # 电话号码
    # phone = Column(String(50), nullable=True, comment='电话号码')
    # 
    # # 标签
    # tags = Column(String(200), nullable=True, comment='标签')
    # 
    # # 朋友权限
    # friend_permission = Column(String(100), nullable=True, comment='朋友权限')
    # 
    # # 共同群聊
    # common_groups = Column(String(200), nullable=True, comment='共同群聊')
    # 
    # # 来源
    # source = Column(String(200), nullable=True, comment='添加来源')
    
    # 是否为好友
    is_friend = Column(Boolean, default=True, nullable=False, comment='是否为好友')
    
    # 是否启用自动回复
    auto_reply_enabled = Column(Boolean, default=True, nullable=False, comment='是否启用自动回复')
    
    # 自定义自动回复消息
    custom_reply_message = Column(Text, nullable=True, comment='自定义自动回复消息')
    
    # 是否被拉黑
    is_blocked = Column(Boolean, default=False, nullable=False, comment='是否被拉黑')
    
    def __repr__(self):
        return f'<User(id={self.id}, wechat_name="{self.wechat_name}", user_type="{self.user_type}")>'